パソコン活用研究ラピュタへの道(アセンブラ、DOS、Windows、旧型PCの活用研究)
Config.sys
config.sys
はパソコン起動時にパソコンのシステム環境を設定するためのファイルです。
パソコンのシステム環境設定とは、つまり何を設定するのかと言うと、主に以下の3点の設定
ということになります。
(1) メモリの使用状況
(2) 周辺機器の使用状況 (プリンタ、外付HDD他の使用の有無により必要なデバイスドラバの
組み込みを行う)
(3) コマンドプロセッサの使用状況 (通常は
command.com)
例えばWindows95 の起動ディスクのconfig.sys を見てみると以下のような記述になっています。
DEVICE=BILING.SYS DEVICE=JFONT.SYS /MSG=OFF DEVICE=JDISP.SYS /HS=LC DEVICE=JKEYB.SYS DEVICE=D011v110.SYS /D:MSCD0001 DEVICE=c:\windows\ANSI.SYS |
それでは、config.sys での環境設定の記述の仕方について解説します。
1 Files
一度にオープンできるファイル数を以下のように
Files で設定します。
Files = 20
Files
の設定を省略するとデフォルトで8が設定されます。
通常は20位に設定すればいいでしょう。
Files の数値1につきメモリーを64Byte消費するので、不必要に大きな数値を設定すると
メモリーの無駄遣いになります。
ちなみに、「ファイルをオープンする」とは、メモリー上にそのファイルに関する情報を読み込んで
保持する、ということです。ファイルに関する情報を読み込む領域として、MS-DOSの場合は64Byte
必要とします。
2 Buffers
バッファのサイズの設定を、以下のように Buffers
で行います。
Buffers = 20
Buffers の設定を省略するとデフォルトで20が設定されます。通常は20程度に設定すればいいでしょう。
メモリーが不足気味なら10位に減らした方がいいかもしれません。
設定した数値 × セクタサイズ(通常512Byte) 分の領域がメモリー上に確保されます。
バッファは辞書で見ると「緩衝装置」ですが、パソコンの場合は、ディスクから読み込んだデータを
一時的に置いておくメモリー領域ということになります。
システム(MS-DOS)は、データを読み込む際に、ディスクに取りに行く前にまずバッファをのぞき、
バッファにあればそれを利用し、なければディスクに向かうというという手順をふみます。
ディスクへのアクセスとバッファ(メモリー)へのアクセスでは数十倍から数百倍の速度差がありますので、
バッファを大きくとれば、ディスクへのアクセスが減りそれだけ速度が向上することになります。
ただし、バッファの設定はそれだけのメモリー領域を食いますので、大きくても30前後にしておくのが
無難です。
3 DEVICE
DEVICE
は周辺機器のドライバを組み込むコマンドです。
以下のように記述します。
DEVICE=JKEYB.SYS
DEVICE=D011v110.SYS /D:MSCD0001
DEVICE=c:\windows\ANSI.SYS
config.sys
に記述されたドライバはメモリーに常駐するので、不要なドライバをたくさん記述すると
メモリーの圧迫になります。
また、オプションスイッチの記述の仕方はドライバー毎にまちまちですので、それぞれ確認して下さい。
(とは言ってもほとんど確認の術がありませんが)
ちなみに、JKEYB.SYSは日本語キーボードドライバ。ANSI.SYSはエスケープシーケンスドライバです。
DOS上(DOSプロンプト、DOSモード含む)でエスケープシーケンスを有効にしたい、という質問をよく
みかけますが、その点についてはエスケープシーケンスにまとめましたので、参照して下さい。
4 DOS
拡張メモリー領域の使用の設定を行うのが、 DOS
コマンドです。
HMA領域、UMB領域を使用するためには以下のように記述します。
DOS = HIGH
DOS = UMB
MS-DOSが管理できるメモリーは基本的に1MByteで、このうちシステムエリアとして約380KByteが
割り当てられ、ユーザーが自由に使えるのは約640KByte(これをコンベンショナルメモリと呼ぶ)
となっています。
しかし、デバイスドライバ他、バッファ(Buffersで設定)、ファイル管理用領域(Filesで設定)等もみな
このコンベンショナルメモリーを使うので、実際にユーザーが使えるメモリーはもっと小さくなって
しまいます。そこで、コンベンショナルメモリー以外の領域も使えるようにする設定がこのDOSによる
設定です。
とりあえず、ここではHMA、UMBがどこかということは気にする必要はありません。いずれにしても
ごく僅かな領域です。
5 DEVICEHIGH
UMB領域にデバイスドライバを組み込みたい時に使うのがDEVICEHIGHです。
DEVICEHIGHで組み込むと、そのドライバはUMB領域に組み込まれます。ただし、UMB領域が不足して
いてドライバがおさまりきらない場合は、自動的にコンベンショナルメモリーに組み込まれます。
DEVICEHIGHコマンドを使う場合、UMB領域を使用可にするための設定として以下の記述がまず
必要になります。
DEVICE = HIMEM.SYS
DEVICE = EMM386.EXE /UMB
DOS = UMB
この記述に続けて以下のように設定の記述をします。
DEVICEHIGH = mouse.sys
6 SHELL
コマンドプロセッサを指定するコマンドがSHELL
です。
コマンドプロセッサはユーザーが入力した文字列(例えば、 DIR とか TYPE といった内部コマンドや
そのた外部コマンド等)を適切に解釈し、実行するファイルです。
MS-DOSではコマンドプロセッサは COMMAND.COM
しかありません。
設定の記述は以下のようにします。
SHELL = A:\COMMAND.COM A:\ /P /E:512
最初の「A:\COMMAND.COM」は起動時のコマンドプロセッサのファイル名です。
次の「A:\」は再ロード時のコマンドプロセッサのパスです。
「/P」はPermanent(常にそこに戻る)という意味で、EXIT
コマンド無効の指定です。
最後の「/E:512」は環境変数領域の大きさの指定です。
補足
EXITはCOMMAND.COM
を終了し、親プロセスに戻るコマンドです。
どう言う時に使うかというと、あるアプリケーションの途中で一時的にCOMMAND.COMを呼び出して
MS-DOS画面に戻るということがあります(子プロセスと呼ぶ)。その画面から再びアプリケーションに
戻る場合に(子プロセスの終了)、EXITコマンドを使います。
ただし、大元のCOMMAND.COMが起動している時に、EXITコマンドを使うと、戻る場所がなくシステム
がクラッシュしますので、起動時のCOMMAND.COM は/Pをつけて起動します。
アプリケーション アプリケーションに戻る
| |
子プロセスのCOMMAND.COM −−>EXIT